package top.eggcode.plugins.office.pattern;

import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfStamper;
import top.eggcode.plugins.office.PdfRender;

import java.util.Map;

/**
 * PDF模板拆分模式
 * 说明：{
 * 每个类型的模板，渲染方法不一样。如果需要增加模式，在本类添加对应的静态方法即可，有三个参数供你使用；
 * 调用示例：
 * DocumentExportUtil.toPDFTemplate("D:\\Temp\\template.pdf",
 * "D:\\Temp\\newDoc.pdf",
 * props,
 * DocumentExportUtil.pdfRenderPattern::admissionLetter);
 * }
 */
public class PdfTemplate {
    /**
     * 录取通知书
     *
     * @param formStamper 模板打印器
     * @param formField   表单域
     * @param props       数据集合
     */
    public static void admissionLetter(PdfRender pdfRender, PdfStamper formStamper, AcroFields formField, Map<String, String> props) {
        // 渲染条形码
        pdfRender.toGraphicCode(formStamper, formField, "imageBarcodeInCn", props.get("imageBarcodeInCn"));
        pdfRender.toGraphicCode(formStamper, formField, "imageBarcodeInEn", props.get("imageBarcodeInEn"));
        // 为了所有数据都在一个集合，使用后删除条形码信息
        props.remove("imageBarcodeInCn");
        props.remove("imageBarcodeInEn");
        // 渲染表单域
        pdfRender.toText(formField, props);
    }
}
